/**
 * @file sf_ass_user.c
 * @date 2024/06/14
 * 
 * @brief 用于逐飞助手的相关函数。
*/

#include "zf_common_headfile.h"

seekfree_assistant_oscilloscope_struct oscilloscope_data; // 逐飞助手示波器的结构体

/**
 * @brief 逐飞助手示波器更新。
 */
void sf_ass_o_update() {
    oscilloscope_data.data[0] = center_line[24];
    oscilloscope_data.data[1] = PID_direction.out_p;
    oscilloscope_data.data[2] = PID_direction.out_d;
    oscilloscope_data.data[3] = direction_put;
    oscilloscope_data.data[4] = PID_gyro.out_p;
    oscilloscope_data.data[5] = PID_gyro.out_d;
    oscilloscope_data.data[6] = rear_control_put;
    //oscilloscope_data.data[7] = direction_put;
    
    // 设置为4个通道，通道数量最大为8个
    oscilloscope_data.channel_num = 7;

    // 通过串口发送到虚拟示波器上
    seekfree_assistant_oscilloscope_send(&oscilloscope_data);
}


/**
 * @brief 逐飞助手调参。在定时器中断或循环中执行。
 */
void sf_ass_p_check() {
    // 滴答客解析接收到的数据
    seekfree_assistant_data_analysis();

    // 遍历
    for(uint8_t i = 0; i < SEEKFREE_ASSISTANT_SET_PARAMETR_COUNT; i++)
    {
        // 更新标志位
        if(seekfree_assistant_parameter_update_flag[i])
        {
            seekfree_assistant_parameter_update_flag[i] = 0;

            tft180_show_float(64,32,seekfree_assistant_parameter[i],4,2);
            tft180_show_string(0,32,M_T_F[i].variable_name);

            *(M_T_F[i].variable_address) = seekfree_assistant_parameter[i];
            
        }
    }
}
